//package com.cg.conf.config;
//
//import com.cg.conf.interceptor.LoginInterceptor;
//import org.apache.catalina.filters.CorsFilter;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.web.cors.CorsConfiguration;
//import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
//import org.springframework.web.servlet.config.annotation.CorsRegistry;
//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//
//@Configuration
//public class WebConfig implements WebMvcConfigurer {
//
//    @Autowired
//    private LoginInterceptor loginInterceptor;
//
//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        registry.addInterceptor(loginInterceptor)
//                .addPathPatterns("/**") // 拦截所有路径
//                .excludePathPatterns("/api/**","/login", "/register", "/swagger-ui/**", "/v2/api-docs", "/doc.html"); // 排除登录、注册和Swagger相关路径
//    }
//
//    @Bean
//    public WebMvcConfigurer corsConfigurer() {
//        return new WebMvcConfigurer() {
//            @Override
//            public void addCorsMappings(CorsRegistry registry) {
//                registry.addMapping("**")
//                        .allowedOrigins("http://localhost:5173")
//                        .allowedMethods("*");
//            }
//        };
//    }
//
//    // 注意：通常只需要一个CORS配置，要么是使用Spring MVC的CorsRegistry，要么是使用Tomcat的CorsFilter。
//    // 下面的CorsFilter配置可能覆盖或重复了上面的corsConfigurer配置，具体取决于您的应用如何部署和配置。
//    // 如果您决定保留CorsFilter，请确保它与您的应用需求相匹配。
//    @Bean
//    public CorsFilter corsFilter() {
//        CorsConfiguration config = new CorsConfiguration();
//        // 允许所有域名进行跨域调用（注意：在生产环境中，最好指定具体允许的域名以提高安全性）
//        config.addAllowedOrigin("*");
//        // 允许跨越发送cookie
//        config.setAllowCredentials(true);
//        // 放行全部原始头信息
//        config.addAllowedHeader("*");
//        // 允许所有请求方法跨域调用
//        config.addAllowedMethod("*");
//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        source.registerCorsConfiguration("/**", config);
//        return new CorsFilter(); // 修改这里，确保CorsFilter使用配置源
//    }
//}
